// 路径管理
import path from "path";
// url 处理
import { fileURLToPath } from "url";
import terser from "@rollup/plugin-terser";
// 当前脚本的 url 地址
const metaUrl = fileURLToPath(import.meta.url);
// 当前脚本所在目录的地址
const dirName = path.dirname(metaUrl);

export default (commandLineArgs) => {
  const outputName = commandLineArgs.name || "main";
  //   console.log(commandLineArgs);
  // 这会使 Rollup 忽略 CLI 参数
  delete commandLineArgs.name;

  const defaultConfig = {
    // 入口
    input: "src/main.js",
    // 多出口, 使用 output 时使用数组包裹 json 对象
    output: [
      // node.js 和 浏览器 使用，需要指定一个库的名字，所有导出的内容将绑定到这个名称上
      {
        file: path.resolve(dirName, `./dist/${outputName}.umd.js`),
        format: "umd",
        name: "lib",
        sourcemap: true,
      },
      {
        file: path.resolve(dirName, `./dist/${outputName}.umd.min.js`),
        format: "umd",
        name: "lib",
      },
      // es 使用
      {
        file: path.resolve(dirName, `./dist/${outputName}.js`),
        format: "es",
        sourcemap: true,
      },
      {
        file: path.resolve(dirName, `./dist/${outputName}.min.js`),
        format: "es",
        plugins: [terser()],
      },
    ],
    // 插件
    plugins: [],
  };
  return defaultConfig;
};
